
/**
 * Created by liumin on 14-3-15.
 */

var moment = require('moment');  // 日期格式化


// 公共变量
var g_var = {};
g_var.OLD_URL = "oldUrl";       // 记录在session中的旧的url
g_var.USER = "user";            // 记录在session中的旧的user

g_var.MAX_UPLOAD_FILE_SIZE = 2000; // 上传文件最大尺寸，单位kb
g_var.TOO_LARGE_ERR = 'Request Entity Too Large';
g_var.RET_FAIL = 'fail';

exports.getGVar = function(){
   return g_var;
}

// 结构体--页面背景信息
exports.PAGE_BACKGROUND_INFO_STRUCT = function(index, x,y,w,h,angle,url){
    this.index = 0; // 页码的下标
    this.bg =  [];// 数组：编辑区域上方图片的的 x\y\w\h\角度\图片地址


    this.index = index;
    this.bg = PAGE_LAYOUT_INFO_STRUCT_Tag.prototype.createImageList(x,y,w,h,angle,url);

    // 正方形的缩略图的的地址
    this.thumUrl = null;
};
// 结构体--页面布局信息
function PAGE_LAYOUT_INFO_STRUCT_Tag(){
    this.index = 0; // 页码的下标
    this.lay = [];// 数组：布局区域的 x\y\w\h
    this.edit = [];// 数组：编辑区域的 x\y\w\h
    this.layUp = [];// 数组：编辑区域上方图片的的 x\y\w\h\角度\图片地址
    this.layDown = [];// 数组：编辑区域下方图片的的 x\y\w\h\角度\图片地址
};
PAGE_LAYOUT_INFO_STRUCT_Tag.prototype.clone = function(){
    var ret = new PAGE_LAYOUT_INFO_STRUCT_Tag();
    ret.index = this.index;
    ret.lay = this.lay.concat();
    ret.edit = this.edit.concat();
    ret.layUp = this.layUp.concat();
    ret.layDown = this.layDown.concat();
    return ret;
}
PAGE_LAYOUT_INFO_STRUCT_Tag.prototype.createImageList = function(x,y,w,h,angle,url){

    if( url){
        angle = angle||0;
        return [x,y,w,h,angle,url];
    }else
        return [x,y,w,h];
}

exports.PAGE_LAYOUT_INFO_STRUCT = PAGE_LAYOUT_INFO_STRUCT_Tag;


// 结构体--页可替换LayerObj的信息
exports.PAGE_REPLACEABLE_INFO_STRUCT = function(){
    this.index = 0; // 页码的下标
    this.rootReplaceGroup = null; // 可替换部分根对象（LayerObj类型），根对象的直接子只能是LayerObj类型，且根对象至少有一个LayerObj
};

// 结构体排序函数，按index从小到大
exports.PAGE_STRUCT_SORT_FUNCTION = function(a, b){
    if(!a.hasOwnProperty('index') || !b.hasOwnProperty('index')){
        return 0;
    }
    return a.index-b.index;
};

// 以时分秒毫秒+随机数的方式
exports.genTimeRandom = function() {
    var m = moment(new Date());
    return m.format('HH_mm_ss_SSS_')+Math.floor(Math.random()*100000);
}

// 属性拷贝(只拷贝result中存在的属性)
exports.copyProperty  = function(result, source) {
    for (var key in source){
        var value = source[key];
        if(value!=null && (typeof value!=='function'))
            result[key] = value;
    }

    return result;
}